package com.tencent.sr.iris.activity.interfaces.request.group;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

@Data
@ApiModel("团长任务列表二级页面参数-导师视角")
public class AdvisorGroupTaskSecondRequest extends BaseRequest implements Serializable {

    @ApiModelProperty("导师关联团长id")
    @JSONField(name = "wechat_user_union_ids")
    private List<String> wechatUserUnionIds;

    @NotNull(message = "任务id不能为空")
    @ApiModelProperty("任务id")
    @JSONField(name = "task_phase_id")
    private String taskPhaseId;

    @NotNull(message = "任务类型taskTargetEvaluation不能为空")
    @ApiModelProperty("任务类型 1=拉新+首购, 2=拉新+复购，3=GMV，4=销量件数, 5=见习会员晋升, 6=初级会员晋升, 7=高级会员晋升，"
            + "8=粉丝首购人数，9=派奖工具，10=普通团推团，11=特邀团推团")
    @JSONField(name = "task_target_evaluation")
    private Integer taskTargetEvaluation;

    @ApiModelProperty("审核状态 0.待审核 1.未完成,2审核中,3.审批驳回,4.审核通过")
    @JSONField(name = "audit_status")
    private List<Integer> auditStatus;

    @ApiModelProperty("任务状态, 1=准备中, 2=待上线，3=已上线，4=已下线，5=已作废")
    @JSONField(name = "task_phase_status")
    private List<Integer> taskPhaseStatus;

    @ApiModelProperty("任务名称")
    @JSONField(name = "task_phase_name")
    private String taskName;

    @ApiModelProperty("等级")
    @JSONField(name = "iris_uid_level")
    private List<String> irisUidLevel;

    @ApiModelProperty("昵称")
    @JSONField(name = "wechat_user_nickname")
    private String wechatUserNickname;

    @ApiModelProperty("开始时间")
    @JSONField(name = "task_phase_start_time")
    private String startTime;

    @ApiModelProperty("结束时间")
    @JSONField(name = "task_phase_end_time")
    private String endTime;

    @ApiModelProperty("实时进度")
    @JSONField(name = "bonus_rule_stage")
    private List<Integer> bonusRuleStage;

    @ApiModelProperty("报名开始时间")
    @JSONField(name = "task_phase_join_start_time")
    private String taskPhaseJoinStartTime;

    @ApiModelProperty("报名结束时间")
    @JSONField(name = "task_phase_join_end_time")
    private String taskPhaseJoinEndTime;

    @ApiModelProperty("是否为导师 1=是, 0=否")
    @JSONField(name = "is_adviser")
    private Integer isAdviser;

    @ApiModelProperty("排序类型 asc：正序， desc：降序")
    @JSONField(name = "order_type")
    private String orderType;

    @ApiModelProperty(" 排序字段（全部邀新人数：total_invite_user_num，有效邀新人数：valid_invite_user_num，"
            + "预估奖励金：predict_award_amount，实际奖励金：award_amount，有效订单金额、实际奖励订单数：valid_order_num，"
            + "有效销售件数：valid_goods_num，预估奖励订单数：predict_valid_order_num")
    @JSONField(name = "order_field")
    private String orderField;

    @JSONField(name = "ranking_start")
    private Integer rankingStart;

    @JSONField(name = "ranking_end")
    private Integer rankingEnd;

    @JSONField(name = "rank_award_config_ids")
    private List<Integer> rankAwardConfigIds;

    @JSONField(name = "stage_num")
    private List<Integer> stageNum;

    @ApiModelProperty("任务周期审核状态(1.审核中,2.通过,3.未完成)（会员冲刺赛）")
    @JSONField(name = "cycle_audit_status")
    private List<Integer> cycleAuditStatus;
}
